package com.suitsoft.ut.entity.thesis;

import java.util.Date;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.suitsoft.ut.entity.IdEntity;
import com.suitsoft.ut.entity.account.User;

/**
 * 论文流程记录实体
 *@author Suineg
 */
@Entity
@Table(name="LW_THESIS_FILE")
public class ThesisFile extends IdEntity{
	/** 档案号 */
	private String thesisFileCode;
	/** 论文 */
	
	private Thesis thesis;
	/** 论文流程类型  1 - 立题， 2 - 选题，3 - 开题，4- 中期，5- 答辩*/
	private Long thesisFlag;
	/** 流程状态
		10立题管理
		11立题一级审核
		12立题二级审核
		21选题管理
		22选题
		23审核选题
		31开题下任务书
		32团队主任审核任务书
		33基层负责人审核任务书
		34准备开题情况表
		35填写开题报告
		36指导教师审核开题报告
		37基层负责人审核开题报告
		41周记
		42评阅周记
		43学生提交自查表
		44评阅学生自查表
		45教师提交自查表
		46评阅教师自查表
		47中期答辩
		51答辩论文及答辩ppt上传
		52指导教师评阅答辩论文及成绩
		53评阅教师评阅论文并评分
		54现场答辩并评分
		55论文成绩评定表
		56毕业论文归档
	 *  */
	private Long thesisStatus;
	/** 立题团队负责人审核意见 */
	private String setTheGroupReview;
	/** 立题团队负责人审核 */
	private String setTheGroupDesign;
	/** 立题团队负责人签字时间 */
	private Date setTheGroupDesignTime;
	/** 立题基层负责人意见 */
	private String setTheBaseReview;
	/** 立题基层负责人 */
	private String setTheBaseDesign;
	/** 立题基层负责人时间 */
	private Date setTheBaseDesignTime;
	/** 立题评阅教师 */
	private String setThePingyueTeacher;
	/** 立题评阅时间 */
	private Date setThePingyueDate;
	/** 立题 评阅内容 */
	private String setThePingyueContent;
	/** 第1~2周（开题准备情况记录） */
	private String thesisWeekFs;
	/** 第1~2周开题准备阶段检查记录 */
	private String thesisWeekFsReview;
	/** 第1~2周开题检查指导教师 */
	private String thesisWeekFsTeDesign;
	/** 第1~2周开题检查指导教师签字时间 */
	private Date thesisWeekFsTeDeTime;
	/** 专家评语 */
	private Set<ExpertContent> expertContents;
	/** 选题审核日期 */
	private Date selectAuditDate;
	/** 选题审核 人 */
	private User selectAuditUser;
	/** 任务书 - 目的 */
	private String openTaskTarget;
	/** 任务书- 内容 */
	private String openTaskContent;
	/** 任务书 - 进度 */
	private String openTaskSchedule;
	/** 任务书- 参考 */
	private String openTaskReference; 
	/** 任务书- 是否合格 1 - 合格，0 - 不合格 */
	private Long openTaskIsOk;
	/** 任务书 - 团队审核人 */
	private String openTaskGroupName;
	/** 任务书 - 团队审核时间 */
	private Date openTaskGroupDate;
	/** 任务书 - 团队审核内容 */
	private String openTaskGroupContent;
	/** 任务书- 基层审核人 */
	private String openTaskBaseName;
	/** 任务书-基层审核时间 */
	private Date openTaskBaseDate;
	/** 任务书- 基层审核内容 */
	private String openTaskBaseContent;
	/** 下任务书时间 */
	private Date openTaskDate;
	/** 下任务书人 */
	private String openTaskName;
	/** 情况表内容 */
	private String openQingkuangContent;
	/** 情况表时间 */
	private Date openQingkuangDate;
	/** 写情况表人 */
	private String openQingkuangName;
	/** 报告 - 背景说明  */
	private String openReportManual;
	/** 报告 - 内容 */
	private String openReportContent;
	/** 报告  - 进度 */
	private String openReportScheldule;
	/** 报告 - 参考 */
	private String openReportReference;
	/** 报告  - 填写学生 */
	private String openReportStudent;
	/** 报告 - 填写内容 */
	private String openReportStudentTxt;
	/** 报告 - 填空时间 */
	private Date openReportStudentDate;
	/** 报告  - 基层审核 */
	private String openReportBaseName;
	/** 报告 - 基层审核时间 */
	private Date openReportBaseDate;
	/** 报告  - 基层审核内容 */
	private String openReprotBaseTxt;
	/** 答疑时间和地址 */
	private String openTaskAnswerInfo;
	/** 报告  - 团队审核人 */
	private String openReportGroupName;
	/** 报告 - 团队审核时间 */
	private Date openReportGroupDate;
	/** 报告  - 团队审核内容 */
	private String openReportGroupTxt;
	/** 报告 - 指导教师 */
	private String openReportTeacherName;
	/** 报告 - 指导教师审核时间 */
	private Date openReportTeacherDate;
	/** 报告 - 指导教师审核内容 */
	private String openReportTeacherTxt;
	/** 学生自查表 是否通过  1- 通过  2 - 提交自表查*/
	private Long isExaminationStudentOk;
	/** 教师自查表 是否通过  1- 通过 */
	private Long isExaminationTeacherOk;
	/** 是否被选中 1 - 被选中 */
	private Long isSelect;
	/** 选中时间 */
	private Date selectedDate;
	/** 选中人 */
	private String selectedName;
	/** 是否确定答辩地点 */
	private Long isConfirmDabianAddress;
	/** 是否上传答辩PPT */
	private Long isUploadPpt;
	/** 最后操作时间 */
	private Date lastDate;
	/** 最后时间人 */
	private Long lastUser;
	/** 答辩 - 指导教师时间 */
	private Date dabianZhidaoDate;
	/** 答辩 - 指导教师名 */
	private String dabianZhidaoName;
	/** 答辩 - 指导教师内容 */
	private String dabianZhidaoContent;
	/** 答辩 - 评阅教师时间 */
	private Date dabianPingyueDate;
	/*** 答辩 - 评阅教师名 */
	private String dabianPingyueName;
	/** 答辩 - 评阅内容 */
	private String dabianPingyueContent;
	/** 答辩 - 现场时间 */
	private Date dabianSceneDate;
	/** 答辩 - 现场名 */
	private String dabianSceneName;
	/** 答辩 - 现场内容 */
	private String dabianSceneContent;
	/** 答辩 - 指导教师是否通过 */
	private Long dabianZhidaoIsOk;
	/** 答辩 - 评阅教师是否通过 */
	private Long dabianPingyueIsOk;
	/** 答辩 - 最终成绩评定人 */
	private String endScoreName;
	/** 答辩 - 最终成绩评定时间 */
	private Date endScoreDate;
	public Long getDabianZhidaoIsOk() {
		return dabianZhidaoIsOk;
	}
	public void setDabianZhidaoIsOk(Long dabianZhidaoIsOk) {
		this.dabianZhidaoIsOk = dabianZhidaoIsOk;
	}
	public Long getDabianPingyueIsOk() {
		return dabianPingyueIsOk;
	}
	public void setDabianPingyueIsOk(Long dabianPingyueIsOk) {
		this.dabianPingyueIsOk = dabianPingyueIsOk;
	}
	public Date getLastDate() {
		return lastDate;
	}
	public void setLastDate(Date lastDate) {
		this.lastDate = lastDate;
	}
	public Long getLastUser() {
		return lastUser;
	}
	public void setLastUser(Long lastUser) {
		this.lastUser = lastUser;
	}
	public Long getIsUploadPpt() {
		return isUploadPpt;
	}
	public void setIsUploadPpt(Long isUploadPpt) {
		this.isUploadPpt = isUploadPpt;
	}
	public Date getSelectedDate() {
		return selectedDate;
	}
	public void setSelectedDate(Date selectedDate) {
		this.selectedDate = selectedDate;
	}
	public String getSelectedName() {
		return selectedName;
	}
	public void setSelectedName(String selectedName) {
		this.selectedName = selectedName;
	}
	public Long getIsSelect() {
		return isSelect;
	}
	public void setIsSelect(Long isSelect) {
		this.isSelect = isSelect;
	}
	public Date getSelectAuditDate() {
		return selectAuditDate;
	}
	public void setSelectAuditDate(Date selectAuditDate) {
		this.selectAuditDate = selectAuditDate;
	}
	@ManyToOne(fetch = FetchType.LAZY)
	public User getSelectAuditUser() {
		return selectAuditUser;
	}
	public void setSelectAuditUser(User selectAuditUser) {
		this.selectAuditUser = selectAuditUser;
	}
	@OneToMany(fetch = FetchType.LAZY,mappedBy = "file")
	public Set<ExpertContent> getExpertContents() {
		return expertContents;
	}
	public void setExpertContents(Set<ExpertContent> expertContents) {
		this.expertContents = expertContents;
	}
	public String getThesisFileCode() {
		return thesisFileCode;
	}
	public void setThesisFileCode(String thesisFileCode) {
		this.thesisFileCode = thesisFileCode;
	}
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name="THESIS_ID")
//	@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
	public Thesis getThesis() {
		return thesis;
	}
	public void setThesis(Thesis thesis) {
		this.thesis = thesis;
	}
	public Long getThesisFlag() {
		return thesisFlag;
	}
	public void setThesisFlag(Long thesisFlag) {
		this.thesisFlag = thesisFlag;
	}
	public Long getThesisStatus() {
		return thesisStatus;
	}
	public void setThesisStatus(Long thesisStatus) {
		this.thesisStatus = thesisStatus;
	}
	public String getSetTheGroupReview() {
		return setTheGroupReview;
	}
	public void setSetTheGroupReview(String setTheGroupReview) {
		this.setTheGroupReview = setTheGroupReview;
	}
	public String getSetTheGroupDesign() {
		return setTheGroupDesign;
	}
	public void setSetTheGroupDesign(String setTheGroupDesign) {
		this.setTheGroupDesign = setTheGroupDesign;
	}
	public Date getSetTheGroupDesignTime() {
		return setTheGroupDesignTime;
	}
	public void setSetTheGroupDesignTime(Date setTheGroupDesignTime) {
		this.setTheGroupDesignTime = setTheGroupDesignTime;
	}
	public String getSetTheBaseReview() {
		return setTheBaseReview;
	}
	public void setSetTheBaseReview(String setTheBaseReview) {
		this.setTheBaseReview = setTheBaseReview;
	}
	public String getSetTheBaseDesign() {
		return setTheBaseDesign;
	}
	public void setSetTheBaseDesign(String setTheBaseDesign) {
		this.setTheBaseDesign = setTheBaseDesign;
	}
	public Date getSetTheBaseDesignTime() {
		return setTheBaseDesignTime;
	}
	public void setSetTheBaseDesignTime(Date setTheBaseDesignTime) {
		this.setTheBaseDesignTime = setTheBaseDesignTime;
	}
	public String getThesisWeekFs() {
		return thesisWeekFs;
	}
	public void setThesisWeekFs(String thesisWeekFs) {
		this.thesisWeekFs = thesisWeekFs;
	}
	public String getThesisWeekFsReview() {
		return thesisWeekFsReview;
	}
	public void setThesisWeekFsReview(String thesisWeekFsReview) {
		this.thesisWeekFsReview = thesisWeekFsReview;
	}
	public String getThesisWeekFsTeDesign() {
		return thesisWeekFsTeDesign;
	}
	public void setThesisWeekFsTeDesign(String thesisWeekFsTeDesign) {
		this.thesisWeekFsTeDesign = thesisWeekFsTeDesign;
	}
	public Date getThesisWeekFsTeDeTime() {
		return thesisWeekFsTeDeTime;
	}
	public void setThesisWeekFsTeDeTime(Date thesisWeekFsTeDeTime) {
		this.thesisWeekFsTeDeTime = thesisWeekFsTeDeTime;
	}
	public String getSetThePingyueTeacher() {
		return setThePingyueTeacher;
	}
	public void setSetThePingyueTeacher(String setThePingyueTeacher) {
		this.setThePingyueTeacher = setThePingyueTeacher;
	}
	public Date getSetThePingyueDate() {
		return setThePingyueDate;
	}
	public void setSetThePingyueDate(Date setThePingyueDate) {
		this.setThePingyueDate = setThePingyueDate;
	}
	public String getSetThePingyueContent() {
		return setThePingyueContent;
	}
	public void setSetThePingyueContent(String setThePingyueContent) {
		this.setThePingyueContent = setThePingyueContent;
	}
	public String getOpenTaskTarget() {
		return openTaskTarget;
	}
	public void setOpenTaskTarget(String openTaskTarget) {
		this.openTaskTarget = openTaskTarget;
	}
	public String getOpenTaskContent() {
		return openTaskContent;
	}
	public void setOpenTaskContent(String openTaskContent) {
		this.openTaskContent = openTaskContent;
	}
	public String getOpenTaskSchedule() {
		return openTaskSchedule;
	}
	public void setOpenTaskSchedule(String openTaskSchedule) {
		this.openTaskSchedule = openTaskSchedule;
	}
	public String getOpenTaskReference() {
		return openTaskReference;
	}
	public void setOpenTaskReference(String openTaskReference) {
		this.openTaskReference = openTaskReference;
	}
	public Long getOpenTaskIsOk() {
		return openTaskIsOk;
	}
	public void setOpenTaskIsOk(Long openTaskIsOk) {
		this.openTaskIsOk = openTaskIsOk;
	}
	public String getOpenTaskGroupName() {
		return openTaskGroupName;
	}
	public void setOpenTaskGroupName(String openTaskGroupName) {
		this.openTaskGroupName = openTaskGroupName;
	}
	public Date getOpenTaskGroupDate() {
		return openTaskGroupDate;
	}
	public void setOpenTaskGroupDate(Date openTaskGroupDate) {
		this.openTaskGroupDate = openTaskGroupDate;
	}
	public String getOpenTaskGroupContent() {
		return openTaskGroupContent;
	}
	public void setOpenTaskGroupContent(String openTaskGroupContent) {
		this.openTaskGroupContent = openTaskGroupContent;
	}
	public String getOpenTaskBaseName() {
		return openTaskBaseName;
	}
	public void setOpenTaskBaseName(String openTaskBaseName) {
		this.openTaskBaseName = openTaskBaseName;
	}
	public Date getOpenTaskBaseDate() {
		return openTaskBaseDate;
	}
	public void setOpenTaskBaseDate(Date openTaskBaseDate) {
		this.openTaskBaseDate = openTaskBaseDate;
	}
	public String getOpenTaskBaseContent() {
		return openTaskBaseContent;
	}
	public void setOpenTaskBaseContent(String openTaskBaseContent) {
		this.openTaskBaseContent = openTaskBaseContent;
	}
	public Date getOpenTaskDate() {
		return openTaskDate;
	}
	public void setOpenTaskDate(Date openTaskDate) {
		this.openTaskDate = openTaskDate;
	}
	public String getOpenTaskName() {
		return openTaskName;
	}
	public void setOpenTaskName(String openTaskName) {
		this.openTaskName = openTaskName;
	}
	public String getOpenQingkuangContent() {
		return openQingkuangContent;
	}
	public void setOpenQingkuangContent(String openQingkuangContent) {
		this.openQingkuangContent = openQingkuangContent;
	}
	public Date getOpenQingkuangDate() {
		return openQingkuangDate;
	}
	public void setOpenQingkuangDate(Date openQingkuangDate) {
		this.openQingkuangDate = openQingkuangDate;
	}
	public String getOpenQingkuangName() {
		return openQingkuangName;
	}
	public void setOpenQingkuangName(String openQingkuangName) {
		this.openQingkuangName = openQingkuangName;
	}
	public String getOpenReportManual() {
		return openReportManual;
	}
	public void setOpenReportManual(String openReportManual) {
		this.openReportManual = openReportManual;
	}
	public String getOpenReportContent() {
		return openReportContent;
	}
	public void setOpenReportContent(String openReportContent) {
		this.openReportContent = openReportContent;
	}
	public String getOpenReportScheldule() {
		return openReportScheldule;
	}
	public void setOpenReportScheldule(String openReportScheldule) {
		this.openReportScheldule = openReportScheldule;
	}
	public String getOpenReportReference() {
		return openReportReference;
	}
	public void setOpenReportReference(String openReportReference) {
		this.openReportReference = openReportReference;
	}
	public String getOpenReportStudent() {
		return openReportStudent;
	}
	public void setOpenReportStudent(String openReportStudent) {
		this.openReportStudent = openReportStudent;
	}
	public String getOpenReportStudentTxt() {
		return openReportStudentTxt;
	}
	public void setOpenReportStudentTxt(String openReportStudentTxt) {
		this.openReportStudentTxt = openReportStudentTxt;
	}
	public Date getOpenReportStudentDate() {
		return openReportStudentDate;
	}
	public void setOpenReportStudentDate(Date openReportStudentDate) {
		this.openReportStudentDate = openReportStudentDate;
	}
	public String getOpenReportBaseName() {
		return openReportBaseName;
	}
	public void setOpenReportBaseName(String openReportBaseName) {
		this.openReportBaseName = openReportBaseName;
	}
	public Date getOpenReportBaseDate() {
		return openReportBaseDate;
	}
	public void setOpenReportBaseDate(Date openReportBaseDate) {
		this.openReportBaseDate = openReportBaseDate;
	}
	public String getOpenReprotBaseTxt() {
		return openReprotBaseTxt;
	}
	public void setOpenReprotBaseTxt(String openReprotBaseTxt) {
		this.openReprotBaseTxt = openReprotBaseTxt;
	}
	public String getOpenTaskAnswerInfo() {
		return openTaskAnswerInfo;
	}
	public void setOpenTaskAnswerInfo(String openTaskAnswerInfo) {
		this.openTaskAnswerInfo = openTaskAnswerInfo;
	}
	public String getOpenReportGroupName() {
		return openReportGroupName;
	}
	public void setOpenReportGroupName(String openReportGroupName) {
		this.openReportGroupName = openReportGroupName;
	}
	public Date getOpenReportGroupDate() {
		return openReportGroupDate;
	}
	public void setOpenReportGroupDate(Date openReportGroupDate) {
		this.openReportGroupDate = openReportGroupDate;
	}
	public String getOpenReportGroupTxt() {
		return openReportGroupTxt;
	}
	public void setOpenReportGroupTxt(String openReportGroupTxt) {
		this.openReportGroupTxt = openReportGroupTxt;
	}
	public String getOpenReportTeacherName() {
		return openReportTeacherName;
	}
	public void setOpenReportTeacherName(String openReportTeacherName) {
		this.openReportTeacherName = openReportTeacherName;
	}
	public Date getOpenReportTeacherDate() {
		return openReportTeacherDate;
	}
	public void setOpenReportTeacherDate(Date openReportTeacherDate) {
		this.openReportTeacherDate = openReportTeacherDate;
	}
	public String getOpenReportTeacherTxt() {
		return openReportTeacherTxt;
	}
	public void setOpenReportTeacherTxt(String openReportTeacherTxt) {
		this.openReportTeacherTxt = openReportTeacherTxt;
	}
	public Long getIsExaminationStudentOk() {
		return isExaminationStudentOk;
	}
	public void setIsExaminationStudentOk(Long isExaminationStudentOk) {
		this.isExaminationStudentOk = isExaminationStudentOk;
	}
	public Long getIsExaminationTeacherOk() {
		return isExaminationTeacherOk;
	}
	public void setIsExaminationTeacherOk(Long isExaminationTeacherOk) {
		this.isExaminationTeacherOk = isExaminationTeacherOk;
	}
	public Long getIsConfirmDabianAddress() {
		return isConfirmDabianAddress;
	}
	public void setIsConfirmDabianAddress(Long isConfirmDabianAddress) {
		this.isConfirmDabianAddress = isConfirmDabianAddress;
	}
	public Date getDabianZhidaoDate() {
		return dabianZhidaoDate;
	}
	public void setDabianZhidaoDate(Date dabianZhidaoDate) {
		this.dabianZhidaoDate = dabianZhidaoDate;
	}
	public String getDabianZhidaoName() {
		return dabianZhidaoName;
	}
	public void setDabianZhidaoName(String dabianZhidaoName) {
		this.dabianZhidaoName = dabianZhidaoName;
	}
	public String getDabianZhidaoContent() {
		return dabianZhidaoContent;
	}
	public void setDabianZhidaoContent(String dabianZhidaoContent) {
		this.dabianZhidaoContent = dabianZhidaoContent;
	}
	public Date getDabianPingyueDate() {
		return dabianPingyueDate;
	}
	public void setDabianPingyueDate(Date dabianPingyueDate) {
		this.dabianPingyueDate = dabianPingyueDate;
	}
	public String getDabianPingyueName() {
		return dabianPingyueName;
	}
	public void setDabianPingyueName(String dabianPingyueName) {
		this.dabianPingyueName = dabianPingyueName;
	}
	public String getDabianPingyueContent() {
		return dabianPingyueContent;
	}
	public void setDabianPingyueContent(String dabianPingyueContent) {
		this.dabianPingyueContent = dabianPingyueContent;
	}
	public Date getDabianSceneDate() {
		return dabianSceneDate;
	}
	public void setDabianSceneDate(Date dabianSceneDate) {
		this.dabianSceneDate = dabianSceneDate;
	}
	public String getDabianSceneName() {
		return dabianSceneName;
	}
	public void setDabianSceneName(String dabianSceneName) {
		this.dabianSceneName = dabianSceneName;
	}
	public String getDabianSceneContent() {
		return dabianSceneContent;
	}
	public void setDabianSceneContent(String dabianSceneContent) {
		this.dabianSceneContent = dabianSceneContent;
	}
	public String getEndScoreName() {
		return endScoreName;
	}
	public void setEndScoreName(String endScoreName) {
		this.endScoreName = endScoreName;
	}
	public Date getEndScoreDate() {
		return endScoreDate;
	}
	public void setEndScoreDate(Date endScoreDate) {
		this.endScoreDate = endScoreDate;
	}
}

